import jwt
from datetime import datetime, timedelta


class SimpleJWT:
    def __init__(self, secret_key: str = "xiaobai"):
        """
        初始化 JWT 工具类
        :param secret_key: 加密密钥（生产环境请使用更复杂的密钥）
        """
        self.secret_key = secret_key

    def create_token(self, phone, expires_minutes):
        """
        创建带过期时间的 JWT Token
        :param user_id: 用户标识
        :param expires_minutes: 过期时间（分钟）
        :return: JWT Token 字符串
        """
        payload = {
            "user_id": phone,
            "exp": datetime.utcnow() + timedelta(minutes=expires_minutes)
        }
        return jwt.encode(payload, self.secret_key, algorithm="HS256")

    def verify_token(self, token: str) -> dict:
        """
        验证 Token 并返回 payload
        :param token: JWT Token 字符串
        :return: payload 字典（验证失败返回 None）
        """
        try:
            return jwt.decode(token, self.secret_key, algorithms=["HS256"])
        except:
            return None


